/* ==========================================================================
   Adventio — Typography tokens
   Display: Space Grotesk · UI/body: Hanken Grotesk · Data: JetBrains Mono
   Tuned for a dense desktop work tool — base UI size 14px.
   ========================================================================== */
:root {
  /* ---------- Families ---------- */
  --font-display: 'Space Grotesk', 'Hanken Grotesk', ui-sans-serif, system-ui, sans-serif;
  --font-sans:    'Hanken Grotesk', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono:    'JetBrains Mono', ui-monospace, 'SFMono-Regular', 'Menlo', monospace;

  /* ---------- Weights ---------- */
  --weight-regular:  400;
  --weight-medium:   500;
  --weight-semibold: 600;
  --weight-bold:     700;
  --weight-extra:    800;

  /* ---------- Type scale (px) ---------- */
  --text-2xs: 11px;
  --text-xs:  12px;
  --text-sm:  13px;
  --text-base:14px;   /* default UI text */
  --text-md:  15px;
  --text-lg:  16px;
  --text-xl:  18px;
  --text-2xl: 22px;
  --text-3xl: 28px;
  --text-4xl: 36px;
  --text-5xl: 46px;
  --text-6xl: 60px;

  /* ---------- Line heights ---------- */
  --leading-none:    1;
  --leading-tight:   1.15;
  --leading-snug:    1.3;
  --leading-normal:  1.5;
  --leading-relaxed: 1.65;

  /* ---------- Letter spacing ---------- */
  --tracking-tighter: -0.03em;
  --tracking-tight:   -0.015em;
  --tracking-normal:  0em;
  --tracking-wide:    0.02em;
  --tracking-wider:   0.06em;
  --tracking-caps:    0.08em;  /* eyebrows / overlines */

  /* ======================================================================
     SEMANTIC TEXT ROLES — shorthand: weight size/line family
     ====================================================================== */
  /* Display — Space Grotesk, big moments (empty states, marketing, login) */
  --type-display-lg: var(--weight-bold) var(--text-5xl)/var(--leading-tight) var(--font-display);
  --type-display:    var(--weight-bold) var(--text-4xl)/var(--leading-tight) var(--font-display);
  --type-display-sm: var(--weight-semibold) var(--text-3xl)/var(--leading-tight) var(--font-display);

  /* Headings — page titles, section titles, card headers */
  --type-h1: var(--weight-semibold) var(--text-2xl)/var(--leading-snug) var(--font-display);
  --type-h2: var(--weight-semibold) var(--text-xl)/var(--leading-snug) var(--font-sans);
  --type-h3: var(--weight-semibold) var(--text-lg)/var(--leading-snug) var(--font-sans);
  --type-h4: var(--weight-semibold) var(--text-base)/var(--leading-snug) var(--font-sans);

  /* Body */
  --type-body-lg: var(--weight-regular) var(--text-lg)/var(--leading-normal) var(--font-sans);
  --type-body:    var(--weight-regular) var(--text-base)/var(--leading-normal) var(--font-sans);
  --type-body-sm: var(--weight-regular) var(--text-sm)/var(--leading-normal) var(--font-sans);

  /* UI labels / controls */
  --type-label:    var(--weight-medium) var(--text-base)/var(--leading-snug) var(--font-sans);
  --type-label-sm: var(--weight-medium) var(--text-sm)/var(--leading-snug) var(--font-sans);

  /* Caption / meta */
  --type-caption: var(--weight-regular) var(--text-xs)/var(--leading-snug) var(--font-sans);

  /* Eyebrow / overline — uppercase, tracked */
  --type-eyebrow: var(--weight-semibold) var(--text-2xs)/var(--leading-snug) var(--font-sans);

  /* Mono / numeric — money, IDs, codes, counts */
  --type-mono:    var(--weight-medium) var(--text-sm)/var(--leading-snug) var(--font-mono);
  --type-mono-lg: var(--weight-semibold) var(--text-2xl)/var(--leading-tight) var(--font-mono);
}

/* Utility: tabular numerals for aligned data columns */
.num-tabular { font-feature-settings: 'tnum' 1, 'lnum' 1; font-variant-numeric: tabular-nums lining-nums; }
